import {loadNamespaceOptions} from "../../namespace/api/EntityApi.js";
import {loadDatasetOptions} from "../../dataset/api/EntityApi.js";

const tableColumns = [
    {
        "key": "namespace",
        "label": "命名空间",
        "type": "string",
        "default": null
    },
    {
        "key": "dataset",
        "label": "数据集",
        "type": "string",
        "default": null
    },
    {
        "key": "categoryLabel",
        "label": "分类标签",
        "type": "string",
        "default": null
    },
    {
        "key": "name",
        "label": "名称",
        "type": "string",
        "default": null
    },
    {
        "key": "description",
        "label": "描述",
        "type": "string",
        "default": null
    },
    {
        "key": "useType",
        "label": "使用类型",
        "type": "enum",
        "default": "private",
        "options": [
            {"value": "private", "label": "私有"},
            {"value": "public", "label": "开放"},
            {"value": "approval", "label": "审核"}
        ]
    },
    {
        "key": "chargeType",
        "label": "收费模式",
        "type": "enum",
        "default": "none",
        "options": [
            {"value": "none", "label": "免费"},
            {"value": "token", "label": "token计费"},
            {"value": "times", "label": "次数计费"}
        ]
    },
    {
        "key": "status",
        "label": "状态",
        "type": "enum",
        "default": "1",
        "options": [
            {"value": "0", "label": "停用"},
            {"value": "1", "label": "发布"}
        ]
    },
    {
        "key": "reqUrl",
        "label": "请求url",
        "type": "string",
        "default": null
    },
    {
        "key": "reqType",
        "label": "请求类型",
        "type": "enum",
        "default": "POST",
        "options": [
            {"value": "GET", "label": "GET"},
            {"value": "POST", "label": "POST"}
        ]
    },
    {
        "key": "logLevel",
        "label": "日志级别",
        "type": "enum",
        "default": 1,
        "options": [
            {"value": 0, "label": "debug"},
            {"value": 1, "label": "info"},
            {"value": 2, "label": "error"}
        ]
    },
];

const createFormItems = [
    {
        "key": "namespace",
        "label": "命名空间",
        "type": "enum",
        "default": null,
        "placeholder": "请输入命名空间",
        "options": await loadNamespaceOptions(),
        "required": true,
        "message": "请输入命名空间"
    },
    {
        "key": "dataset",
        "label": "数据集",
        "type": "enum",
        "default": null,
        "placeholder": "请输入数据集",
        "options": await loadDatasetOptions(),
        "required": true,
        "message": "请输入数据集"
    },
    {
        "key": "categoryLabel",
        "label": "分类标签",
        "type": "string",
        "default": null,
        "placeholder": "请输入分类标签",
        "required": true,
        "message": "请输入分类标签"
    },
    {
        "key": "name",
        "label": "名称",
        "type": "string",
        "default": null,
        "placeholder": "请输入名称",
        "required": true,
        "message": "请输入名称"
    },
    {
        "key": "description",
        "label": "描述",
        "type": "string",
        "default": null,
        "placeholder": "请输入描述",
        "required": true,
        "message": "请输入描述"
    },
    {
        "key": "useType",
        "label": "使用类型",
        "type": "enum",
        "default": "private",
        "placeholder": "请选择使用类型",
        "options": [
            {"value": "private", "label": "私有"},
            {"value": "public", "label": "开放"},
            {"value": "approval", "label": "审核"}
        ],
        "required": true,
        "message": "请选择使用类型"
    },
    {
        "key": "chargeType",
        "label": "收费模式",
        "type": "enum",
        "default": "none",
        "placeholder": "请选择收费模式",
        "options": [
            {"value": "none", "label": "免费"},
            {"value": "token", "label": "token计费"},
            {"value": "times", "label": "次数计费"}
        ],
        "required": true,
        "message": "请选择收费模式"
    },
    {
        "key": "status",
        "label": "状态",
        "type": "enum",
        "default": "0",
        "placeholder": "请选择状态",
        "options": [
            {"value": "0", "label": "停用"},
            {"value": "1", "label": "发布"}
        ],
        "required": true,
        "message": "请选择状态"
    },
    {
        "key": "reqUrl",
        "label": "请求url",
        "type": "string",
        "default": null,
        "placeholder": "请输入请求url",
        "required": true,
        "message": "请输入请求url"
    },
    {
        "key": "reqType",
        "label": "请求类型",
        "type": "enum",
        "default": "POST",
        "placeholder": "请选择请求类型",
        "options": [
            {"value": "POST", "label": "POST"}
        ],
        "required": true,
        "message": "请选择请求类型"
    },
    {
        "key": "logLevel",
        "label": "日志级别",
        "type": "enum",
        "default": 1,
        "placeholder": "请选择日志级别",
        "options": [
            {"value": 0, "label": "debug"},
            {"value": 1, "label": "info"},
            {"value": 2, "label": "error"}
        ],
        "required": true,
        "message": "请选择日志级别"
    }
];

const updateFormItems = [
    {
        "key": "namespace",
        "label": "命名空间",
        "type": "string",
        "default": null,
        "placeholder": "请输入命名空间",
        "required": true,
        "message": "请输入命名空间"
    },
    {
        "key": "dataset",
        "label": "数据集",
        "type": "string",
        "default": null,
        "placeholder": "请输入数据集",
        "required": true,
        "message": "请输入数据集"
    },
    {
        "key": "categoryLabel",
        "label": "分类标签",
        "type": "string",
        "default": null,
        "placeholder": "请输入分类标签",
        "required": true,
        "message": "请输入分类标签"
    },
    {
        "key": "name",
        "label": "名称",
        "type": "string",
        "default": null,
        "placeholder": "请输入名称",
        "required": true,
        "message": "请输入名称"
    },
    {
        "key": "description",
        "label": "描述",
        "type": "string",
        "default": null,
        "placeholder": "请输入描述",
        "required": true,
        "message": "请输入描述"
    },
    {
        "key": "useType",
        "label": "使用类型",
        "type": "enum",
        "default": "private",
        "placeholder": "请选择使用类型",
        "options": [
            {"value": "private", "label": "私有"},
            {"value": "public", "label": "开放"},
            {"value": "approval", "label": "审核"}
        ],
        "required": true,
        "message": "请选择使用类型"
    },
    {
        "key": "chargeType",
        "label": "收费模式",
        "type": "enum",
        "default": "none",
        "placeholder": "请选择收费模式",
        "options": [
            {"value": "none", "label": "免费"},
            {"value": "token", "label": "token计费"},
            {"value": "times", "label": "次数计费"}
        ],
        "required": true,
        "message": "请选择收费模式"
    },
    {
        "key": "status",
        "label": "状态",
        "type": "enum",
        "default": "1",
        "placeholder": "请选择状态",
        "options": [
            {"value": "0", "label": "停用"},
            {"value": "1", "label": "发布"}
        ],
        "required": true,
        "message": "请选择状态"
    },
    {
        "key": "reqUrl",
        "label": "请求url",
        "type": "string",
        "default": null,
        "placeholder": "请输入请求url",
        "required": true,
        "message": "请输入请求url"
    },
    {
        "key": "reqType",
        "label": "请求类型",
        "type": "enum",
        "default": "POST",
        "placeholder": "请选择请求类型",
        "options": [
            {"value": "POST", "label": "POST"}
        ],
        "required": true,
        "message": "请选择请求类型"
    },
    {
        "key": "logLevel",
        "label": "日志级别",
        "type": "enum",
        "default": 1,
        "placeholder": "请选择日志级别",
        "options": [
            {"value": 0, "label": "debug"},
            {"value": 1, "label": "info"},
            {"value": 2, "label": "error"}
        ],
        "required": true,
        "message": "请选择日志级别"
    },
];

const reqHeaderItems = [
    {
        "key": "name",
        "label": "参数名称",
        "type": "string",
        "default": null,
        "placeholder": "请输入参数名称",
        "required": true,
        "message": "请输入参数名称"
    },
    {
        "key": "type",
        "label": "参数类型",
        "type": "string",
        "default": null,
        "placeholder": "请输入参数类型",
        "required": true,
        "message": "请输入参数类型"
    },
    {
        "key": "nullable",
        "label": "是否非必输",
        "type": "enum",
        "default": "true",
        "placeholder": "是否非必输",
        "options": [
            {"value": "true", "label": "非必输"},
            {"value": "false", "label": "必输"},
        ],
        "required": true,
        "message": "请选择使用类型"
    },
];

const reqParamItems = [
    {
        "key": "name",
        "label": "参数名称",
        "type": "string",
        "default": null,
        "placeholder": "请输入参数名称",
        "required": true,
        "message": "请输入参数名称"
    },
    {
        "key": "type",
        "label": "参数类型",
        "type": "string",
        "default": null,
        "placeholder": "请输入参数类型",
        "required": true,
        "message": "请输入参数类型"
    },
    {
        "key": "nullable",
        "label": "是否非必输",
        "type": "enum",
        "default": "true",
        "placeholder": "是否非必输",
        "options": [
            {"value": "true", "label": "非必输"},
            {"value": "false", "label": "必输"},
        ],
        "required": true,
        "message": "请选择使用类型"
    },
];

const reqBodyItems = [
    {
        "key": "name",
        "label": "参数名称",
        "type": "string",
        "default": null,
        "placeholder": "请输入参数名称",
        "required": true,
        "message": "请输入参数名称"
    },
    {
        "key": "type",
        "label": "参数类型",
        "type": "string",
        "default": null,
        "placeholder": "请输入参数类型",
        "required": true,
        "message": "请输入参数类型"
    },
    {
        "key": "nullable",
        "label": "是否非必输",
        "type": "enum",
        "default": "true",
        "placeholder": "是否非必输",
        "options": [
            {"value": "true", "label": "非必输"},
            {"value": "false", "label": "必输"},
        ],
        "required": true,
        "message": "请选择使用类型"
    },
];

const tableCriteria = [
    {
        "key": "name",
        "label": "名称",
        "type": "string",
        "default": null,
        "placeholder": "请输入名称"
    },
    {
        "key": "useType",
        "label": "使用类型",
        "type": "enum",
        "default": null,
        "placeholder": "请选择使用类型",
        "options": [
            {"value": "private", "label": "私有"},
            {"value": "public", "label": "开放"},
            {"value": "approval", "label": "审核"}
        ]
    },
];

export {tableColumns, createFormItems, updateFormItems, reqHeaderItems, reqParamItems, reqBodyItems, tableCriteria};
